package com.assignwork.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

import org.springblade.core.tool.utils.DateUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * TrainLoadLogVO
 */
@Data
@ApiModel(value = "TrainLoadLogVO对象", description = "火车装卸日志")
public class TrainLoadLogVO {

    /** 主键id;主键id */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "主键id")
    private Long id;

    /** 作业日 */
    @DateTimeFormat(pattern = DateUtil.PATTERN_DATE)
    @JsonFormat(pattern = DateUtil.PATTERN_DATE)
    @ApiModelProperty(value = "作业日")
    @Excel(name = "作业时间", orderNum = "1", type = 1, width = 20, format = "yyyy-MM-dd")
    private LocalDate workDate;

    /** 班次 */
    @ApiModelProperty(value = "班次")
    private String timeSpace;
    @Excel(name = "班次", orderNum = "2", type = 1, width = 15)
    private String timeSpaceName;

    /** 作业对组 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "作业对组")
    private Long corpId;
    @Excel(name = "队组", orderNum = "3", type = 1, width = 15)
    private String corpName;

    /** 装卸类型 */
    @ApiModelProperty(value = "装卸类型")
    private String loadType;
    @Excel(name = "装卸类型", orderNum = "4", type = 1, width = 15)
    private String loadTypeName;

    /** 货类 */
    @ApiModelProperty(value = "货类")
    private String cargoType;
    @Excel(name = "货类", orderNum = "5", type = 1, width = 15)
    private String cargoTypeName;

    /** 作业状态 */
    @ApiModelProperty(value = "作业状态")
    private String workStatus;
    @Excel(name = "状态", orderNum = "6", type = 1, width = 15)
    private String workStatusName;

    /** 车厢类型 */
    @ApiModelProperty(value = "车厢类型")
    private String coachType;
    @Excel(name = "车种", orderNum = "7", type = 1, width = 15)
    private String coachTypeName;

    /** 车厢数 */
    @Excel(name = "车数", orderNum = "8", type = 1, width = 15)
    @ApiModelProperty(value = "车厢数")
    private Integer coachCount;

    /** 车厢单吨 */
    @Excel(name = "单车重", orderNum = "9", type = 1, width = 15)
    @ApiModelProperty(value = "车厢单吨")
    private BigDecimal coachTon;

    /** 重吨 */
    @Excel(name = "重量", orderNum = "10", type = 1, width = 15)
    @ApiModelProperty(value = "重吨")
    private BigDecimal totalTon;

    /** 排车时间 */
    @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
    @JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
    @ApiModelProperty(value = "排车时间")
    @Excel(name = "摆妥时间", orderNum = "11", type = 1, width = 20 ,format = "yyyy-MM-dd  HH:mm")
    private LocalDateTime arrangeTime;



    /** 道线 */
    @ApiModelProperty(value = "道线")

    private String workLine;
    @Excel(name = "道线", orderNum = "12", type = 1, width = 15)
    private String workLineName;

    private String remark;

    private Integer isCheck;
    private String updateUserName;

    private String modifiedUser;
    @Excel(name = "操作人", orderNum = "15", type = 1, width = 15)
    private String modifiedUserName;

    /** 开始时间 */
    @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
    @JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
    @ApiModelProperty(value = "开始时间")
    @Excel(name = "开始时间", orderNum = "13", type = 1, width = 20 ,format = "yyyy-MM-dd  HH:mm")
    private LocalDateTime beginTime;

    /** 结束时间 */
    @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
    @JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
    @ApiModelProperty(value = "结束时间")
    @Excel(name = "结束时间", orderNum = "14", type = 1, width = 20 ,format = "yyyy-MM-dd  HH:mm")
    private LocalDateTime endTime;

    @Excel(name = "操作时间", orderNum = "16", type = 1, width = 20 ,format = "yyyy-MM-dd  HH:mm")
    @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
    @JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
    @ApiModelProperty(value = "操作时间")
    private Date updateTime;

}